<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="lib.css" type='text/css' />
<link rel="SHORTCUT ICON" href="../icons/pyfav.png" type="image/png" />
<link rel='start' href='../index.html' title='Python documentation Index' />
<link rel="first" href="lib.html" title='Python library Reference' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='index' href='genindex.html' title='Index' />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="prev" href="dom-type-mapping.html" />
<link rel="parent" href="dom-conformance.html" />
<link rel="next" href="module-xml.dom.minidom.html" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name='aesop' content='information' />
<title>8.6.3.2 Accessor Methods </title>
</head>
<body>
<div class="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="8.6.3.1 type Mapping"
  href="dom-type-mapping.html"><img src='../icons/previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></a></td>
<td class='online-navigation'><a rel="parent" title="8.6.3 Conformance"
  href="dom-conformance.html"><img src='../icons/up.png'
  border='0' height='32'  alt='Up one Level' width='32' /></a></td>
<td class='online-navigation'><a rel="next" title="8.7 xml.dom.minidom  "
  href="module-xml.dom.minidom.html"><img src='../icons/next.png'
  border='0' height='32'  alt='Next Page' width='32' /></a></td>
<td align="center" width="100%">Python Library Reference</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
  href="contents.html"><img src='../icons/contents.png'
  border='0' height='32'  alt='Contents' width='32' /></a></td>
<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
  border='0' height='32'  alt='Module Index' width='32' /></a></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='../icons/index.png'
  border='0' height='32'  alt='Index' width='32' /></a></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="dom-type-mapping.html">8.6.3.1 Type Mapping</a>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="dom-conformance.html">8.6.3 Conformance</a>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="module-xml.dom.minidom.html">8.7 xml.dom.minidom  </a>
</div>
<hr /></div>
</div>
<!--End of Navigation Panel-->

<h3><a name="SECTION0010632000000000000000"></a><a name="dom-accessor-methods"></a>
<br>
8.6.3.2 Accessor Methods 
</h3>

<p>
The mapping from OMG IDL to Python defines accessor functions for IDL
<tt class="keyword">attribute</tt> declarations in much the way the Java mapping
does.  Mapping the IDL declarations

<p>
<div class="verbatim"><pre>
readonly attribute string someValue;
         attribute string anotherValue;
</pre></div>

<p>
yields three accessor functions:  a ``get'' method for
<tt class="member">someValue</tt> (<tt class="method">_get_someValue()</tt>), and ``get'' and
``set'' methods for
<tt class="member">anotherValue</tt> (<tt class="method">_get_anotherValue()</tt> and
<tt class="method">_set_anotherValue()</tt>).  The mapping, in particular, does not
require that the IDL attributes are accessible as normal Python
attributes:  <code><var>object</var>.someValue</code> is <em>not</em> required to
work, and may raise an <tt class="exception">AttributeError</tt>.

<p>
The Python DOM API, however, <em>does</em> require that normal attribute
access work.  This means that the typical surrogates generated by
Python IDL compilers are not likely to work, and wrapper objects may
be needed on the client if the DOM objects are accessed via CORBA.
While this does require some additional consideration for CORBA DOM
clients, the implementers with experience using DOM over CORBA from
Python do not consider this a problem.  Attributes that are declared
<tt class="keyword">readonly</tt> may not restrict write access in all DOM
implementations.

<p>
In the Python DOM API, accessor functions are not required.  If provided,
they should take the form defined by the Python IDL mapping, but
these methods are considered unnecessary since the attributes are
accessible directly from Python.  ``Set'' accessors should never be
provided for <tt class="keyword">readonly</tt> attributes.

<p>
The IDL definitions do not fully embody the requirements of the W3C DOM
API, such as the notion of certain objects, such as the return value of
<tt class="method">getElementsByTagName()</tt>, being ``live''.  The Python DOM API
does not require implementations to enforce such requirements.

<div class="navigation">
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="8.6.3.1 type Mapping"
  href="dom-type-mapping.html"><img src='../icons/previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></a></td>
<td class='online-navigation'><a rel="parent" title="8.6.3 Conformance"
  href="dom-conformance.html"><img src='../icons/up.png'
  border='0' height='32'  alt='Up one Level' width='32' /></a></td>
<td class='online-navigation'><a rel="next" title="8.7 xml.dom.minidom  "
  href="module-xml.dom.minidom.html"><img src='../icons/next.png'
  border='0' height='32'  alt='Next Page' width='32' /></a></td>
<td align="center" width="100%">Python Library Reference</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
  href="contents.html"><img src='../icons/contents.png'
  border='0' height='32'  alt='Contents' width='32' /></a></td>
<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
  border='0' height='32'  alt='Module Index' width='32' /></a></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='../icons/index.png'
  border='0' height='32'  alt='Index' width='32' /></a></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="dom-type-mapping.html">8.6.3.1 Type Mapping</a>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="dom-conformance.html">8.6.3 Conformance</a>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="module-xml.dom.minidom.html">8.7 xml.dom.minidom  </a>
</div>
</div>
<hr />
<span class="release-info">Release 2.5.1, documentation updated on 18th April, 2007.</span>
</div>
<!--End of Navigation Panel-->
<address>
See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.
</address>
</body>
</html>
